package com.clkj.xiuzheng.pojo.common;

import com.wechat.pay.java.core.Config;
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import lombok.Data;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * @author yawang
 * @create 2025/10/16 10:50:56
 **/
@Data
@Component
public class WechatPayConfig {
    /**
     * 小程序公众号的appId
     */
    private  String appId="wx3be50f8d4f94f23f";


    /**
     * 商户号
     */
    private  String mchid="1729397933";

    /**
     * 商户API私钥路径
     * PemUtil.loadPrivateKeyFromPath("D:/app_cert/1729397933/apiclient_key.pem")
     */
    private  String privateKey="D:/app_cert/1729397933/apiclient_key.pem";

    /**
     * 商户证书序列号
     */
    private  String merchantSerialNumber="1B23589AA5D706CE5B31BA9FD0392892C391EA18";

    /**
     * 商户APIV3密钥
     */
    private  String apiV3Key="yaodaodayaofangyouxiangongsi1111";

    @Bean
    public Config rsaAutoCertificateConfig() {
        // 这里把Config作为配置Bean是为了避免多次创建资源，一般项目运行的时候这些东西都确定了
        // 具体的参数改为申请的数据，可以通过读配置文件的形式获取
        Config config = new RSAAutoCertificateConfig.Builder()
                .merchantId(mchid)
                .privateKeyFromPath(privateKey)
                .merchantSerialNumber(merchantSerialNumber)
                .apiV3Key(apiV3Key)
                .build();

//        Config config = new RSAAutoCertificateConfig.Builder()
//                .merchantId(wxPayConfig.getMerchantId())
//                .privateKeyFromPath(wxPayConfig.getPrivateKeyPath())
//                .merchantSerialNumber(wxPayConfig.getMerchantSerialNumber())
//                .apiV3Key(wxPayConfig.getApiV3Key())
//                .build();
        System.out.println(("初始化微信支付商户配置完成..."));
        return config;
    }
}
